home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / New System Software Extensions / OpenDoc A6 / SOM / OpenDoc and SOM / CPlusPlus / Undo.xh < prev    next >
Encoding:
Text File  |  1994-04-19  |  5.3 KB  |  240 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: Locrian:WWDCSun:CPlusPlus:Undo.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: somc/smemit.c
  7.  *     SOM Emitter emitxh.dll: somc/smmain.c
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Constants
  13.  * 
  14.  * 
  15.  *  Classes defined in this interface
  16.  * 
  17.  */
  18.  
  19.  
  20. #ifndef SOM_ODUndo_xh
  21. #define SOM_ODUndo_xh
  22.  
  23. class ODUndo;
  24.  
  25. #define ODUndo_MajorVersion 0
  26. #define ODUndo_MinorVersion 0
  27.  
  28. /* C++ som defs */
  29. #include <somcls.xh>
  30.  
  31. /* Include C++ parent defs */
  32. #ifndef SOM_ODObject_xh
  33. #include <ODObject.xh>
  34. #endif
  35.  
  36. #ifndef ODUndo_API
  37. #define ODUndo_API
  38. /*
  39.  * -- The Class API
  40.  */
  41.  
  42. /*
  43.  * Start of user-defined types:
  44.  */
  45. class ODExtension;
  46. class ODPart;
  47.  
  48. /*
  49.  * End of user-defined types.
  50.  */
  51.  
  52. #if applec ^ PRAGMA_LIB_EXPORT
  53. #pragma lib_export on
  54. #endif
  55.  
  56.  
  57. /* A procedure to create the ODUndo Class */
  58. SOMEXTERN SOMClass * SOMLINK ODUndoNewClass(
  59.         integer4 majorVersion,
  60.         integer4 minorVersion);
  61.  
  62. /* The API to the ODUndo class object, and the methods it introduces. */
  63. typedef struct ODUndoClassDataStructure {
  64.     SOMClass *classObject;
  65.     somMToken InitUndo;
  66.     somMToken AddActionToHistory;
  67.     somMToken Undo;
  68.     somMToken Redo;
  69.     somMToken MarkActionHistory;
  70.     somMToken ClearActionHistory;
  71.     somMToken ClearRedoHistory;
  72.     somMToken PeekUndoHistory;
  73.     somMToken PeekRedoHistory;
  74. } ODUndoClassDataStructure;
  75. #ifdef SOM_NO_DATA_EXPORTS
  76.    SOMEXTERN ODUndoClassDataStructure * ODUndoGetClassData ( void );
  77. #   undef ODUndoClassData
  78. #   define ODUndoClassData (*ODUndoGetClassData())
  79. #else
  80.    SOMEXTERN ODUndoClassDataStructure ODUndoClassData;
  81. #endif /* SOM_NO_DATA_EXPORTS */
  82.  
  83. #if applec ^ PRAGMA_LIB_EXPORT
  84. #pragma lib_export off
  85. #endif
  86.  
  87. #define _ODUndo ODUndoClassData.classObject
  88.  
  89. /* The API to parentMtabs for ODUndo, and the instance data it introduces. */
  90. SOMEXTERN struct ODUndoCClassDataStructure {
  91.     somMethodTabs parentMtab;
  92.     somDToken instanceDataToken;
  93. } ODUndoCClassData;
  94.  
  95. /*
  96.  * -- Typedefs for Procedures that support Methods introduced by ODUndo
  97.  */
  98. SOMEXTERN {
  99. typedef void   (* SOMLINK somTD_ODUndo_AddActionToHistory)(ODUndo *somSelf, Environment *ev,
  100.         ODPart* whichPart,
  101.         ODActionData actionData,
  102.         ODActionType actionType,
  103.         ODName undoActionLabel,
  104.         ODName redoActionLabel);
  105. typedef void   (* SOMLINK somTD_ODUndo_Undo)(ODUndo *somSelf, Environment *ev);
  106. typedef void   (* SOMLINK somTD_ODUndo_Redo)(ODUndo *somSelf, Environment *ev);
  107. typedef void   (* SOMLINK somTD_ODUndo_MarkActionHistory)(ODUndo *somSelf, Environment *ev);
  108. typedef void   (* SOMLINK somTD_ODUndo_ClearActionHistory)(ODUndo *somSelf, Environment *ev,
  109.         ODRespectMarksChoices respectMarks);
  110. typedef void   (* SOMLINK somTD_ODUndo_ClearRedoHistory)(ODUndo *somSelf, Environment *ev);
  111. typedef ODBoolean   (* SOMLINK somTD_ODUndo_PeekUndoHistory)(ODUndo *somSelf, Environment *ev,
  112.         ODPart* part,
  113.         ODActionData* actionData,
  114.         ODActionType* actionType,
  115.         ODName* actionLabel);
  116. typedef ODBoolean   (* SOMLINK somTD_ODUndo_PeekRedoHistory)(ODUndo *somSelf, Environment *ev,
  117.         ODPart** part,
  118.         ODActionData* actionData,
  119.         ODActionType* actionType,
  120.         ODName* actionLabel);
  121. }
  122.  
  123. #endif /* ODUndo_API */
  124.  
  125.  
  126. /*
  127.  * -- Method Tokens are Thunks
  128.  */
  129. #undef somresolve_
  130. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  131.  
  132. /*
  133.  * -- The C++ Wrapper Class for ODUndo
  134.  */
  135. class ODUndo : public ODObject
  136. {
  137. public:
  138.  
  139. void *operator new(size_t size)
  140. {
  141.    SOM_IgnoreWarning(size);
  142.    if (!ODUndoClassData.classObject) 
  143.       ODUndoNewClass(ODUndo_MajorVersion,ODUndo_MinorVersion);
  144.    return (void *)
  145.       ((somTD_SOMClass_somNew)
  146.       somresolve_((SOMObject *)((void*)(ODUndoClassData.classObject)),
  147.                  SOMClassClassData.somNew))
  148.          ((SOMClass *)((void*)(ODUndoClassData.classObject)));
  149. }
  150.  
  151. void operator delete(void * obj)
  152. {
  153.    ((SOMObject *)obj)->somFree();
  154. }
  155.  
  156. /* public method: AddActionToHistory */
  157. void   AddActionToHistory(Environment *ev,
  158.         ODPart* whichPart,
  159.         ODActionData actionData,
  160.         ODActionType actionType,
  161.         ODName undoActionLabel,
  162.         ODName redoActionLabel)
  163. {
  164.    SOM_Resolve(this,ODUndo,AddActionToHistory)
  165.     (this,ev,whichPart,actionData,actionType,undoActionLabel,redoActionLabel);
  166. }
  167.  
  168.  
  169. /* public method: Undo */
  170. void   Undo(Environment *ev)
  171. {
  172.    SOM_Resolve(this,ODUndo,Undo)
  173.     (this,ev);
  174. }
  175.  
  176.  
  177. /* public method: Redo */
  178. void   Redo(Environment *ev)
  179. {
  180.    SOM_Resolve(this,ODUndo,Redo)
  181.     (this,ev);
  182. }
  183.  
  184.  
  185. /* public method: MarkActionHistory */
  186. void   MarkActionHistory(Environment *ev)
  187. {
  188.    SOM_Resolve(this,ODUndo,MarkActionHistory)
  189.     (this,ev);
  190. }
  191.  
  192.  
  193. /* public method: ClearActionHistory */
  194. void   ClearActionHistory(Environment *ev,
  195.         ODRespectMarksChoices respectMarks)
  196. {
  197.    SOM_Resolve(this,ODUndo,ClearActionHistory)
  198.     (this,ev,respectMarks);
  199. }
  200.  
  201.  
  202. /* public method: ClearRedoHistory */
  203. void   ClearRedoHistory(Environment *ev)
  204. {
  205.    SOM_Resolve(this,ODUndo,ClearRedoHistory)
  206.     (this,ev);
  207. }
  208.  
  209.  
  210. /* public method: PeekUndoHistory */
  211. ODBoolean   PeekUndoHistory(Environment *ev,
  212.         ODPart* part,
  213.         ODActionData* actionData,
  214.         ODActionType* actionType,
  215.         ODName* actionLabel)
  216. {
  217.    return SOM_Resolve(this,ODUndo,PeekUndoHistory)
  218.     (this,ev,part,actionData,actionType,actionLabel);
  219. }
  220.  
  221.  
  222. /* public method: PeekRedoHistory */
  223. ODBoolean   PeekRedoHistory(Environment *ev,
  224.         ODPart** part,
  225.         ODActionData* actionData,
  226.         ODActionType* actionType,
  227.         ODName* actionLabel)
  228. {
  229.    return SOM_Resolve(this,ODUndo,PeekRedoHistory)
  230.     (this,ev,part,actionData,actionType,actionLabel);
  231. }
  232.  
  233.  
  234.  
  235. };   /* ODUndo */
  236.  
  237.  
  238.  
  239. #endif       /* SOM_ODUndo_xh */
  240.